package net.zjitc.login.dao;

import net.zjitc.login.domain.User;
import net.zjitc.login.util.JDBCUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

/**
 * @Author Administrator
 * @Date 2020/5/29 9:19
 * 利用Spring框架JdbcTemple:
 * 1)准备sql语句
 * 2）增删改： update(),传入参数1：sql
 *            参数2： 给？赋值
 *    查询：要用try..catch包裹
 *         queryForObject() 返回对象（表中的一条记录）
 *         query(),返回的是集合（表中满足条件的多条记录）
 *         传入的参数1：sql
 *         参数2：Bean... 自动将表中的记录封装成对象/集合
 *         参数3：给？赋值
 **/
public class UserDaoImpl implements UserDao {
    JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
    String sql="";
    @Override
    public User login(String name, String password) {
        sql="select * from user where name=? and password=?";
        try{
           return template.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class),
                   name,password);
        }catch (Exception e){
            System.out.println(e.getMessage());
            return null;
        }

    }

    @Override
    public void register(User user) {
        /* 数据库中id是自增的，user对象也没有id具体值
        *  sql语句的写法有2种：
        *  insert into user(name,password) values(?,?)*/
        sql="insert into user values(null,?,?)";
        /* 增删改用update方法，传入2类参数：
        *  参数1：sql
        *  参数2：给问号占位符赋值*/
        template.update(sql,user.getName(),user.getPassword());
    }


}
